//
//  QSEclipseImage.m
//
//   Copyright 2007 Brad Reynolds
//
//   Licensed under the Apache License, Version 2.0 (the "License");
//   you may not use this file except in compliance with the License.
//   You may obtain a copy of the License at
//
//       http://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//   distributed under the License is distributed on an "AS IS" BASIS,
//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//   See the License for the specific language governing permissions and
//   limitations under the License.

#import "QSEclipseImage.h"
#import "QSEclipsePlugin.h"

@implementation NSImage (QSEclipseImage)
-(NSImage *) withEclipseDecoration {
	NSImage *eclipseImage = [[[QSEclipsePlugin sharedInstance] eclipseImage] copy];
	NSSize size = [self size];
	
	NSImage *compositeImage = [[NSImage alloc] initWithSize: size];
	[compositeImage setScalesWhenResized:YES];
	
	[compositeImage lockFocus];
		[[NSGraphicsContext currentContext]
			setImageInterpolation: NSImageInterpolationHigh];
	
		NSSize halfSize;
		halfSize.width = size.width / 2;
		halfSize.height = size.height / 2;

		[eclipseImage setScalesWhenResized:YES];
		[eclipseImage setSize:halfSize];

		NSRect destRect;
		destRect.size = size;
		destRect.origin = NSZeroPoint;
		
		[self drawInRect : destRect
			fromRect: NSZeroRect
			operation: NSCompositeSourceOver
			fraction: 1.0];
			
		destRect.size = halfSize;
		destRect.origin = NSMakePoint(halfSize.width, 0.0);
		
		[eclipseImage drawInRect:destRect 
			fromRect:NSZeroRect 
			operation:NSCompositeSourceOver 
			fraction:1.0];
	
	[compositeImage unlockFocus];
	[eclipseImage release];
	
	return [compositeImage autorelease];
}

@end
